home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / util / shell / SphinxExtraDocs.lha / Docs / Commands.doc < prev    next >
Encoding:
Text File  |  1992-05-16  |  21.8 KB  |  519 lines

  1.  
  2.                   Sphinx.doc v2.6x
  3.          © 1991, Nicolas Dade. All Rights Reserved
  4.  permission is hereby granted for non-commercial duplication and distribution
  5.           doc file for the SPHINX: AmigaDOS device
  6.  last revised: May 16th, 1992
  7.  
  8.             - - - - - - - - - - - - - - - - - -
  9.  
  10. The gadgets:
  11.  
  12. [Iconize] (or RA-Z):
  13. This closes the SPHINX window and opens a small drag bar in its place.
  14. Everything else keeps working as if the main window were open except,
  15. naturally, nothing is drawn. This results in both a speed increase and an
  16. uncluttering of the workbench screen.
  17. To reopen the main window, activate the drag bar (click on it with the lmb
  18. (left mouse button)), then either try to access a menu (rmb) or press a key
  19. which produces a character (Shift won't work). If you press a key, the key
  20. is only used to open the window-it is not entered into the input buffer.
  21.  
  22. The iconized window and, when it is reopened, the main window, are made
  23. active only if the previous window was active.
  24.  
  25. The first time you iconize, the iconized window opens where the main window
  26. was when it was iconized. From there on, the iconized window opens were it
  27. was when it was deiconized.
  28.  
  29. There is a certain request that the calling program can make of SPHINX:
  30. (DiskInfo packet) that is rarely done, but that forces SPHINX to lock the
  31. window; thereafter you cannot iconize it because that would close the main
  32. window. When this happens, if the window is iconized, it is deiconized. Then,
  33. in either case, the iconize gadget is ghosted and RA-Z is disabled.
  34. This condition is rare, but if it does occur and you dont like it, then it
  35. was some program you ran that caused it. Not running that program will
  36. be as close to a fix as you are going to get.
  37. NOTE: It is my guess that most programs that ask for this information are
  38. about to do something not quite legal, and probably are going to crash
  39. anyhow. But you can never tell... .
  40. NOTE: WB1.3's SetMap does use this (I have no idea why), and does not crash.
  41. So does LhA, and doesn't crash either.
  42.  
  43. RA-Z:
  44. Keyboard equivalent to the Iconize Gadget.
  45.  
  46.  
  47. [Scroll]:
  48. When depressed and when moved, the window is redrawn making the top line the
  49. line the fraction of the gadgets distance from the top into the list of saved
  50. text. This is determined by bytes, not lines, since the number of lines
  51. changes every time the window is resized.
  52.  
  53. Unlike most scroll gadgets, this one does NOT move when the window is
  54. scrolled by some other means. This is done for speed, since scanning through
  55. many KBytes of data to compute what its position would be is slow. If you
  56. don't like it, then don't use the scroll gadget. (actually you will find that
  57. this is not as big a problem as you may imagine it to be. Try it and you will
  58. see you really didn't need the scroll gadget's position to always be
  59. correct-just after scrolling is all that seems to be needed, and that is does
  60. happen with SPHINX).
  61. Clicking above or below the scroll gadget will move it to the top or the
  62. bottom of its box, and to the top or the bottom of the saved text. This
  63. is a fast way to get to the bottom using the mouse (SHIFT-DOWN will
  64. do it from the keyboard)
  65.  
  66. Also scrolling using the scroller has a non-fatal (as far as I can
  67. observe) bug in it: sometimes when you yank the scroller up and down
  68. very fast the cursor ends up on the wrong line of the window (often
  69. completely out of sight). The way to get your cursor back is to resize
  70. the window. The resize causes the cursor's position to be recomputed
  71. from scratch, and that computation is correct.
  72. Scrolling using the arrow keys seems to have no bugs, even SHIFT-ALT-UP
  73. which can jump large distances, just like the scroller.
  74. Why is this bug in Sphinx? Because I can't find it.
  75.  
  76.  
  77. [Undo] (Literal,Searching,F10 Locked,Clipping) (or RA-X):
  78. This gadget serves various purposes, depending on the state of SPHINX.
  79. Ordinarily its imagery represents the current clipping mode:
  80.  `X' for private (directly into the inputline, at the cursor),
  81.  `C' for clipboard,
  82.  `F' for file
  83. When it is pressed, the last deletion or insertion is undone:
  84.  If you have just inserted some unparsed text, or just undone a deletion,
  85.  then Undo deletes the text you have just inserted. This is canceled once the
  86.  cursor is moved or a character inserted or deleted. Else the last block of
  87.  text that was deleted in one place using any combination of (BS, DEL, S-BS,
  88.  S-DEL, A-BS, A-DEL, C-X, or Undo) is restored.
  89. When the literal trigger is loaded, its imagery is an `L', either script L or
  90.  straight L. When Undo is pressed it just unloads the trigger.
  91. When the contents of the search buffer are valid, then its imagery shows an
  92.  `S'. When it is hit, it cancels the search and copies the search buffer back
  93.  into the input buffer-restoring the input buffer to what it was before the
  94.  search.
  95. When trying to complete a word, then the imagery shows a `W', and pressing
  96.  Undo cancels the word completion, and restores the input line to what it
  97.  was before the wording.
  98. When inserts are going to be parsed, a small `P' appears in the lower left
  99.  corner of this gadget, on top of the main imagery.
  100.  
  101. RA-X:
  102. Keyboard equivalent to the Undo Gadget.
  103.  
  104.  
  105. [Resize]:
  106. When the window is resized the whole window is redrawn. The old upperleft
  107. character is kept in the top line of the window, unless the cursor was
  108. previously visible and would not be visible in the new window if the old
  109. upperleft character were put in the new top line. In this case the window is
  110. scrolled down to that the cursor is visible again.
  111.  
  112.  
  113. RA-] & SRA-]:
  114. Pop the SPHINX window and, if it is open, the configuration window, to the
  115. front (keyboard equivalent to the WindowToFront Gadget).
  116.  
  117. RA-[ & SRA-[:
  118. Push the SPHINX window and, if it is open, the configuration window, to the
  119. back (keyboard equivalent to the WindowToBack Gadget).
  120. NOTE: if you cannot remember which is which, remember this: the [ and ] keys
  121. are arranged on the keyboard in the same ordinal pattern as the WindowToFront
  122. and WindowToBack gadgets are in the upper right of a window (well, in WB1.3
  123. and lower): the key on the right pops to front, the key on the left pushes to
  124. back.
  125.  
  126.             - - - - - - - - - - - - - - - - - -
  127.  
  128. The Left Mouse Button and Clipping:
  129.  
  130. The mouse can be used to clip text from the window. To clip some text, first
  131. get the text in view by scrolling the window vertically. Then place the mouse
  132. pointer on one end if the block of characters you wish to clip. Then hold
  133. down the lmb while moving to the other end of the block, and release the lmb.
  134. The text is then clipped to whatever the current clipping mode specifies (the
  135. input buffer, the clipboard (unit 0)or a file)
  136. NOTE: if you are clipping a TAB (perhaps along with other characters) the
  137. block of text will jump from the TAB to the next character as you move the
  138. mouse, since the TAB is really "occupying" all those spaces.
  139.  
  140. A word, as defined by the ExtraClipWordChars, or one character that is not in
  141. the set of ExtraClipWordChars, can be clipped by double-clicking either on
  142. a character of the word, or on the single non-word character. The edges of
  143. the word are defined by the first characters which do not belong to the set
  144. of characters (A-Z + a-z + ExtraClipWordChars), or the first change in
  145. format (italics, color,...) or a change from an inputed text to written
  146. text.
  147.  
  148. Text cannot be clipped solely from the input buffer. Instead, when a
  149. character in the input buffer is clicked on, the cursor is moved to that
  150. character. It is possible, and perfectly legal, to start clipping to the left
  151. of the input buffer, and have the block extend into the input buffer; the
  152. block just can't start in the input buffer.
  153.  
  154. Clicking to the right of the last input buffer character jumps the cursor to
  155. the end of the input buffer.
  156.  
  157. Clicking below the last line of the input buffer does nothing (except maybe
  158. activate the window).
  159.  
  160. RA-G & SRA-G
  161. If the currently selected clipping mode has been used, then it changes
  162. the clipping mode to private, else it Cycles through the clipping modes:
  163. private->clipboard->file->back to private. The undo gadget's imagery
  164. shows which mode we are in, as does the clipping mode gadget in the
  165. config window.
  166.  
  167.             - - - - - - - - - - - - - - - - - -
  168.  
  169. Inserting:
  170.  
  171. RA-I:
  172. This inserts whatever text is in the clipboard (unit 0). If input parsing is
  173. enabled, then the characters are treated as if they had been typed in, if
  174. not then they are inserted at the cursor as if Literal were enabled.
  175. (looks down inside all CATs,LISTs and FORMs, and inserts the contents of
  176. all CHRS hunks it finds inside FTXT forms)
  177.  
  178. SRA-I:
  179. This inserts the contents of the file specified in the InsertFile (or a file
  180. requestor if the arp library is around) using the current parsing mode (or
  181. saves this information so that the insertion may be done when the previous
  182. file insertion(s) are completed, if there are already some going on).
  183.  
  184. This insertion is done without blocking up the SPHINX window-everything
  185. still works while the insertion is taking place. In fact, the insertion
  186. looks like you were typing the text in, except that the inserted text never
  187. gets mixed up with any inputlines you may be typing.
  188. The file is treated as a plain ascii file.
  189.  
  190. RA-P:
  191. Toggles whether inserted text (from private clip, clipboard or insert file)
  192. is just inserted at the cursor, or is parsed just as if it had been typed in.
  193. This means that by inserting from a file and parsing that insert you now
  194. have a primitive (no conditions or loops,...) macro facility within SPHINX:
  195. just have the insert file contain the input lines as you would type them.
  196. NOTE: there is one difference between keyboard stroke parsing and insert
  197. parsing, in an insert, both CR and LF end the input buffer and make it
  198. available, while in keyboard parsing LF just end the input buffer, but does
  199. not make it available.
  200.  
  201. RA-A:
  202. Inserts again the last clipboard or private insertion as if you had just
  203. hit RA-I or clipped the text, even if the text is now gone (private text
  204. was freed, or clipboard file is changed)
  205. NOTE: does not work with file insertions
  206.  
  207.             - - - - - - - - - - - - - - - - - -
  208.  
  209. Vertical Movement keystrokes:
  210. (see also scroll gadget)
  211.  
  212. SA-UP (shift-alt-UP):
  213. This scrolls back to the next previous beginning of an input line. This is a
  214. very usefull keystroke; when you have a short window and have just typed a
  215. command that returned more text that fitted in the window, pressing SA-UP
  216. will jump you back to the first text returned by that command. Then you can
  217. scroll slowly down the text with C-DOWN or A-DOWN.
  218.  
  219. S-DOWN:
  220. If we are searching and the cursor is visible, then cancels the search and
  221. restores the input buffer.
  222. If the cursor is not in sight, this scrolls just enough to bring it into
  223. sight.
  224. If the cursor is already in sight, this scrolls the cursor to the top line of
  225. the window.
  226.  
  227. A-UP & A-DOWN:
  228. Scrolls the window up or down by half the height of the window unless the
  229. first or last bit of text would be reached, in which case the scroll goes
  230. only as far as possible. The number of lines to scroll is determined by the
  231. number of lines visible divided by two, rounded up. This way a one line
  232. window can still be scrolled.
  233.  
  234. C-UP & C-DOWN:
  235. Scrolls the window up or down by one line, unless the first or last bit of
  236. text has been reached.
  237.  
  238. SC-S: (Shift-Control-S)
  239. Disables the automatic scrolling. Now when the window would ordinarily have
  240. scrolled because text drawn to it had reached the bottom of the window, the
  241. window will not scroll (and the text will just be "drawn" below what is
  242. visible in the window; just down arrow to see it when you are ready).
  243. This is very usefull when you have a program which is writing a lot of lines
  244. to the window (say, a directory) and you are reading what is at the top of the
  245. window but the cursor is about to reach the bottom of the window, and so the
  246. window would scroll. By quickly presing SC-S you keep the window from
  247. scrolling, and therefore your reading from being interrupted.
  248. This is canceled by editing the input line in any way (typing a text key,
  249. inserting or searching), S-DOWN or C-G; RETURN,ENTER,C-J, C-M and C-\ to not
  250. cancel the auto-scrolling disablement, so you may enter a line of text, press
  251. SC-S, and then RETURN.
  252.  
  253. C-S:
  254. The first time, it stops output to the window, the next it allows it. When
  255. output is not allowed you may still edit and enter input lines.
  256. This is most usefull when the non-blocking type ahead is enabled and you
  257. want to see what you are entering w/o having it jump around ahead of the
  258. text being outputed.
  259.  
  260. C-Q & C-G:
  261. Manually cancels the auto-scroll disable put in place by SC-S, and the output
  262. stop put in place by C-S.
  263.  
  264.  
  265.             - - - - - - - - - - - - - - - - - -
  266.  
  267. Spots and Jumping:
  268.  
  269. F1 to F10:
  270. These jump the window to a predefined spot. You may program ten of these
  271. spots.
  272. When blocks of text are freed, any spots that specified a character in those
  273. blocks are cleared. The exception is the F10 spot.
  274. When the jump is done, the character the spot specifies is put in the topmost
  275. line of the window. (similar to what goes on when the window is resized)
  276.  
  277.  
  278. S-F1 to S-F9:
  279. Defines the specified spot by saving the current upper left character.
  280.  
  281. S-F10:
  282. Defines the F10 spot by saving the current upper left character.
  283.  
  284. The F10 spot operates like the F1 through F9 spots with one addition: the
  285. automatic and (S)RA-F memory freeing is not allowed to free text at or
  286. below the character specified by the spot. This way if there is some text
  287. you would like to keep from being freed automatically, you can lock it down
  288. by placing the F10 spot at the beginning of that text. (In addi- tion, you
  289. can jump back to that text by pressing F10).
  290.  
  291. A-F10:
  292. Since the F10 spot is not cleared automatically by the memory being freed,
  293. and if it is not freed, will cause memory to no longer be freed, A-F10 is
  294. used to free the F10 spot.
  295.  
  296.             - - - - - - - - - - - - - - - - - -
  297.  
  298. Editing keystrokes:
  299.  
  300. RETURN, ENTER and C-M (ascii $0d):
  301. This ends inputing. The current input line is copied elsewhere, input buffer
  302. is cleared, the undo buffer is cleared, etc..., and makes the input available
  303. to the program reading from SPHINX (Read()). It appends a LF to the end of
  304. the current input line.
  305.  
  306. C-\ (ascii $1c):
  307. This ends the input line, resets the buffer, etc... just like RETURN, but
  308. does not append a LF. Then, if the line is not empty, the next read returns a
  309. zero length read. This way it simulates the EOF (End Of File) of a file
  310. system file.
  311.  
  312. C-J (ascii $0a):
  313. This ends the current input line only, not making it available for input. It
  314. will be made available when, at the end of some later input line, RETURN or
  315. C-/ is pressed.
  316.  
  317. C-Fn:
  318. If the string correspond to this key (specified in the configuration file)
  319. is not empty, then that string is inserted at the cursor, as if it had been
  320. typed in, and then the line is entered, as if RETURN had been pressed.
  321. If there is not enough room in the input buffer for the string, nothing
  322. happens.
  323.  
  324. BACKSPACE, C-H:
  325. Deletes the character the left of the cursor, if one exists, moving the tail
  326. of characters and the cursor to the left to fill the gap.
  327.  
  328. DELETE
  329. Deletes the character to the right (or under, if a block or underline cursor
  330. is being used). Again the tail is scrolled in order to fill the gap.
  331.  
  332. S-BS/C-U:
  333. Deletes all characters to the left of the cursor.
  334.  
  335. S-DEL/C-K:
  336. Deletes all characters to the right (or under and to the right) of the
  337. cursor.
  338.  
  339. C-X:
  340. Deletes everything in the input buffer.
  341.  
  342. A-BS:
  343. Deletes the word (or part of word) to the left of the cursor, as defined by
  344. the configuration delete word characters, or, if there is no word there,
  345. deletes one character to the left. Does not delete anything to the right of
  346. the cursor.
  347.  
  348. A-DEL:
  349. Deletes the word (or part of word) to the right of the cursor, or, if there
  350. is no word there, deletes one character to the right. Does not delete
  351. anything to the left of the cursor.
  352.  
  353. RIGHT ARROW:
  354. Moves the cursor one character to the right.
  355.  
  356. LEFT ARROW:
  357. Moves the cursor one character to the left.
  358.  
  359. A-RIGHT/C-RIGHT:
  360. Moves the cursor to the right until the start of a word is found, as defined
  361. by the configuration move word characters, or to the end of the input buffer,
  362. which ever comes first.
  363.  
  364. A-LEFT/C-LEFT:
  365. Moves the cursor to the left until the start of a word is found, etc...
  366. similarly to A-RIGHT.
  367.  
  368. S-RIGHT/C-Z:
  369. Moves the cursor to the end of the input buffer.
  370.  
  371. S-LEFT/C-A:
  372. Moves the cursor to the beginning of the input buffer.
  373.  
  374. C-W:
  375. Moves the cursor to the right to the next "tab stop" (included really for
  376. NEWCON compatability).
  377.  
  378. RA-L:
  379. See also Undo Gadget
  380. This toggles the literal trigger. When the trigger is loaded, the undo
  381. gadget's imagery shows an `L', and the next keystroke will be entered
  382. directly into the input buffer, not interpreted (unless it is an RA-key).
  383. This way, for example, a Ctrl-X ($18) can be put in the input buffer, instead
  384. of having it clear the buffer. The literal trigger is unloaded after one
  385. keystroke has been entered.
  386.  
  387. SRA-L:
  388. This does the same thing as RA-L except that when the literal trigger is
  389. loaded with this keystroke, it is locked: it is not canceled until SRA-L,
  390. RA-L or UNDO is pressed, instead of being automatically canceled after one
  391. keystroke has been entered. The undo gadget shows a script `L'.
  392. If literal trigger is already loaded, but not locked, then this just locks
  393. it.
  394.  
  395.             - - - - - - - - - - - - - - - - - -
  396.  
  397. Searching keystrokes:
  398.  
  399. Searching and Search mode are synonymous. They refer to the state in which
  400. the UNDO GG's picture shows an `S', and the input buffer shows an old input
  401. line. It is exited by editing the input line, DOWN ARROWING to the input
  402. buffer, or SHIFT-DOWN, or UNDO GG/RA-X. When searching, only the newest
  403. copy of identical input lines is shown to you.
  404.  
  405. UP ARROW:
  406. Look at the next higher input line, if one exists.
  407.  
  408. DOWN ARROW:
  409. Look at the next lower input line, or, if the input buffer has been reached,
  410. cancel the searching mode and restore the input buffer.
  411.  
  412. SHIFT-DOWN/C-B:
  413. When searching, if the cursor is visible, cancels the search and restores the
  414. input buffer, like in NEWCON. (see also this key under Vertical Movement)
  415.  
  416. UNDO GG/RA-X:
  417. When searching, cancels the search and restores the input buffer.
  418.  
  419. S-UP/C-R
  420. This, like in NEWCON, searches back in old input lines. However it is (in my
  421. biased opinion) a MUCH better implementation of this function.
  422. First, if we are not searching yet, the input buffer is copied into the
  423. search buffer. This solves one problem with NEWCON's search, in which you
  424. have to edit the input line to search back to the second matching line.
  425. Then I look back in the next older input lines from that which the input
  426. buffer shows now (so if we have just begun searching, we start with the first
  427. input line), looking for a line which matches the search line.
  428. Different sorts of comparisons are done depending on what the search line
  429. consists of:
  430. First, if all the alphabetic characters (A-Z) in the search line are uppercase
  431. then all comparisons are done on a case insensitive basis, instead of on a
  432. case sensitive basis.
  433. 1) If the search line contains wildcard characters, and the arp.library is
  434.    avialable (and PreParse() says that the search line is a wildcard
  435.    attern) then only a wildcard comparison is tried, and if it is
  436.    successfull then I stop.
  437. then
  438. 2) If the first characters of the line are exactly those in the search line
  439.    then I stop (NEWCON style search)
  440. and
  441. 3) If there at least <Min Lngth for Fragment Comparison> characters in the
  442.    search line, then if the line passes the fragment comparison then I
  443.    stop.
  444.  
  445. If no lines are found which match, then the display does not change.
  446.  
  447. Thus if MaxLiteralCmpChars was 3 and we had the two old input lines:
  448.  Dir INC:intuition/
  449.  dir inc:Intuition/
  450. then a search line of
  451.  DIR
  452. would produce a case insensative NEWCON style comparison, and both old input
  453. lines would match, while
  454.  Dir
  455. would be considered case sensative, and only the first old input line would
  456. match.
  457.  dirintui
  458. ,since it has more then 3 characters, also produce a fragment comparison, and
  459. the second line would match (dir inc:Intuition/)
  460.                  dir in    tui
  461.  DIR#?INTUITION
  462. would cause case insensitive NEWCON style comparisons, fragment comparisons
  463. and (if arp.library is available) wildcard comparisons to be tried, and the
  464. case insensitive wildcard comparisons would say that both old lines match.
  465.  
  466.  
  467. The easiest way to describe the fragment comparision is to describe what it
  468. looks for: it looks for fragments of the search line in the line being
  469. tested. These fragments may be as small as one character, and must appear in
  470. the same order in the line being compared as in the search line. This
  471. allows you to type in fragments of the line(s) you seek, and then look back
  472. at those which match by repeatedly pressing S-UP. example:
  473. If you have these three old input lines:
  474.  dir intuition/
  475.  run v include/intuition/intuition.i
  476.  dirintuition/
  477. and you typed
  478.  dirintui
  479. and then pressed S-UP, the third line will be returned, since its first 8
  480. characters match exactly with the search line. Another press of S-UP will
  481. return the first line, because the search line can be broken up into
  482. fragments that can be found, in the same order, in that line: `dir' and
  483. `intui'.
  484.  
  485. This gives you a sort of wildcard comparision without wildcards, since the
  486. search line is treated as having a `*' (or `#?' for the Amiga purists)
  487. between each of its characters.
  488.  
  489. NOTE: all characters are allowed in the search line.
  490.  
  491.             - - - - - - - - - - - - - - - - - -
  492.  
  493. Special keystrokes:
  494.  
  495. RA-F
  496. This frees the oldest block of saved text that can be freed.
  497. This is the only RA-key that repeats at all. Like all other keys, it does not
  498. repeat after it is released.
  499.  
  500. SRA-F
  501. This frees all the blocks of saved text that can be freed. Therefore this
  502. should be used when you wish to free some memory and you don't need what is
  503. going to be freed, like when you are switching to doing something else.
  504. This is equivalent to holding down RA-F until everything is freed that can
  505. be.
  506. Use Spot 10 and/or the top line of the window to control just how much is
  507. freed.
  508.  
  509. RA-O:
  510. Opens the window to the full size of the screen, but does not change its
  511. depth arrangement, or, if the window is the full size of the screen,
  512. shrinks the window back down to its previous size.
  513.  
  514. RA-C:
  515. Opens the configuration window.
  516.  
  517.             - - - - - - - - - - - - - - - - - -
  518.  
  519.